//#region
// 定义一个描述【上下左右】方向的枚举 Direction
// enum Direction {
//   Up,
//   Down,
//   Left,
//   Right
// }

// console.log(Direction)  // 打印 Direction 会看到如下内容

/*
  {
    0: 'Up',
    1: 'Down',
    2: 'Left',
    3: 'Right',
    Up: 0,
    Down: 1,
    Left: 2,
    Right: 3
  }
 */

// 反向映射
// console.log(Direction.Up)   // 0
// console.log(Direction[0])   // Up

// 此行代码报错, 枚举中的属性是只读的
// Direction.Up = 'shang'
//#endregion

enum Direction {
  Up = 6,
  Down = 12,
  Left,
  Right
}

console.log(Direction.Up)     // 输出: 6
console.log(Direction.Down)   // 输出: 7


// enum Direction {
//   Up,
//   Down,
//   Left,
//   Right
// }

// function walk(data: Direction) {
//   console.log(data)
//   if (data === Direction.Up) {
//     console.log("向【上】走")
//   } else if (data === Direction.Down) {
//     console.log("向【下】走")
//   } else if (data === Direction.Left) {
//     console.log("向【左】走")
//   } else if (data === Direction.Right) {
//     console.log("向【右】走")
//   } else {
//     console.log("未知方向");
//   }
// }

// // walk('up')  // 警告: 类型“"up"”的参数不能赋给类型“Direction”的参数。
// walk(Direction.Up)
// walk(Direction.Down)